While it is possible to write JavaScript that will dynamically create any HTML you want, the more HTML you need, the more JavaScript you have to write. Why not use HTML and clone it? HTML5 introduces a template element that will let you write your HTML in a way that is hidden on the page and then you can clone and paste it anywhere you want. Code GIST: https://gist.github.com/prof3ssorSt3v3/d5d92044d037ab4513e3fe5e5e9c8ffb Document Fragment Video: https://youtu.be/ON7Bo-KY6f4 Clone Node Video: https://www.youtube.com/watch?v=zjYgz50E0mA